import {defineStore} from "pinia";
import api from '../api/api.js'; // 导入 API 服务

export const adminpostsStore = defineStore({
    id: "adminposts",
    state: () => ({
        adminposts: [], // 初始化用户信息为一个空数组
        adminpostspage: [], // 用于存储页面数据

    }),

    actions: {
        async fetchadminposts(data) {
            this.loadpostsFromLocalStorage(); // 加载本地数据
            // 检查 data.page 是否已存在于 adminpagedata 中
            console.log('adminpostspage:', this.adminpostspage, data.page);
            if (this.adminpostspage.includes(data.page)) {
                console.log('数据已存在，无需重新请求');
                return true; // 表示成功加载本地数据
            }


            const response = await api.get('/admin/posts', {params: data}); // 调用API接口
            console.log('response:', response);
            if (response.data.code === 0) {
                // 将新数据添加到现有的 userinfos 数组中
                this.adminposts.push(...response.data.data.data);
                this.adminpostspage.push(data.page); // 将当前页添加到 adminpagedata 中
                this.savepostsToLocalStorage(); // 保存用户信息到本地存储
                return true; // 表示成功
            } else {
                console.log('获取信息失败');

                return false; // 失败
            }
        },

        savepostsToLocalStorage() {
            localStorage.setItem('adminposts', JSON.stringify(this.adminposts)); // 将用户信息保存到本地存储
            localStorage.setItem('adminpostspage', JSON.stringify(this.adminpostspage)); // 将页码保存到本地存储
        },
        deleteposts(userId) {
            const index = this.posts.findIndex((user) => user.id === userId); // 找到要删除的用户的索引
            console.log('index:', index);
            this.adminposts.splice(index, 1); // 从数组中删除用户
            this.savepostsToLocalStorage(); // 保存用户信息到本地存储
        },

        loadpostsFromLocalStorage() {
            const adminposts = localStorage.getItem('adminposts'); // 从本地存储读取用户信息
            const adminpostspage = localStorage.getItem('adminpostspage'); // 从本地存储读取页码信息


            if (adminposts) {
                this.adminposts = JSON.parse(adminposts); // 解析 JSON 数据并设置到 state
            }

            if (adminpostspage) {
                this.adminpostspage = JSON.parse(adminpostspage); // 解析 JSON 数据并设置到 state
            }
        }
    },

    getters: {
        fullName(state) {
            return `${state.adminposts.firstName} ${state.adminposts.lastName}`; // 示例：获取用户全名的计算属性
        },
    },
});
